package com.mingserve.raw.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.springframework.data.annotation.Transient;

import java.io.Serial;
import java.io.Serializable;

/**
 * 测点原始数据上传时间戳索引
 *
 * @author lvwshuai
 * @date 2023-03-07
 */
@TableName("raw_time")
@Data
public class RawTime implements Serializable
{
    @Serial
    private static final long serialVersionUID = 1L;

    @TableId(value = "raw_id")
    @Transient
    private Long rawId;

    /**
     * 超级表第一列时间戳，默认Ts为传感器上传时间
     */
    private Long ts;

    /**
     * 事件时间
     */
    @Transient
    private Long eventTime;

    /**
     * IoT设备编码
     */
    private String deviceCode;

    /**
     * 测点编码
     */
    private String pointCode;

    /**
     * 设备类型编码
     */
    @TableField(exist = false)
    private String typeCode;

    public String getTypeCode()
    {
        if (pointCode != null && pointCode.length() >= 20)
        {
            // 截取出设备类型编码
            typeCode = pointCode.substring(16, 20);
        }
        return typeCode;
    }
}
